<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        * {
            padding: 0;
            margin: 0;
        }

        html {
            width: 3000px;
            height: 5000px;
        }

        .box {
            width: 200px;
            height: 200px;
            background-color: #6ff;
            margin: 50px;
            overflow: hidden;
            margin-left: 1000px;
            margin-top: 1000px;
        }

        .sub {
            width: 100px;
            height: 100px;
            background-color: pink;
            margin: 50px;
            pointer-events: none;
        }
    </style>
</head>

<body>
    <div class="box">
        <div class="sub"></div>
    </div>
</body>
<script>
    // 事件对象  =>  事件相关的信息
    // 1. 页面加载时 绑定事件
    // 2. 浏览器监听到对应的行为之后 => 触发事件 => 并将事件相关的信息作为第一参数传入 => 事件对象

    // 事件相关的信息?
    // 什么时间  发生了什么类型的事件  发生再谁身上?
    // 快捷键  ctrl  alt shift meta

    // 鼠标相关 => 鼠标按键  鼠标的位置
    // 键盘相关 => 按键 字符  键盘码/字符编码


    // 事件对象的属性_ 通用

    // timeStamp  页面加载完毕到事件触发时的间隔时间
    // type       事件的类型(click dblclick mousedown)
    // target     事件源(触发事件的元素  => 给元素绑定事件,该元素的子代元素均可触发 => 谁触发的元素)

    // ctrlKey     事件触发时ctrl键是否被按下
    // altKey      事件触发时alt键是否被按下
    // shiftKey    事件触发时shift键是否被按下
    // metaKey     事件触发时meta键是否被按下

    // 事件对象的属性_鼠标事件相关
    // button  事件触发时按下的鼠标按键   左:0 中:1 右键:2
    // buttons 事件触发时按下的鼠标按键   左:1 右:2 左右:3  中:4 左中:5 右中:6 左中右:7   

    // clientX / clientY  事件触发时鼠标相对于可视窗口的位置
    // x / y  事件触发时鼠标相对于可视窗口的位置

    // pageX  pageY  事件触发时鼠标相对于文档的位置

    // 火狐低版本 没有pageX pageY   => 自己算
    // var pageX = e.clinetX + document.documentElement.scrollLeft;
    // var pageY = e.clinetY + document.documentElement.scrollTop;

    // offsetX offsetY   事件触发时鼠标相对于事件源(触发事件的元素)的位置

    var box = document.getElementsByClassName("box")[0];

    box.onmousedown = function (e) {
        var e = e || window.event;
        // console.log(e);

        // console.log(e.button); // 左:0 中:1 右键:2
        // console.log(e.buttons); // 左:1 右:2 左右:3  中:4 左中:5 右中:6 左中右:7   

        // 鼠标位置
        // console.log(e.clientX, e.clientY);
        // console.log(e.pageX, e.pageY);
        // console.log(e.target, e.offsetX, e.offsetY);

        // 点击sub 返回相对于box的偏移
        // 1. 自己算
        // 2. 给.sub =>添加css属性  pointer-events:none;
        var posX = e.pageX - box.offsetLeft;
        var posY = e.pageY - box.offsetTop;
        console.log(e.target, posX, posY);



    }






</script>

</html>